﻿
#region Comment

/*
 * Project：    SpaceLibrary
 * 
 * FileName:    Option/grid.cs
 * CreatedOn:   2016-06-23
 * CreatedBy:   农夫有田
 * 
 * 
 * Description：
 *      ->      ECharts3全局参数
 *   
 * History：
 *      ->
 * 
 * Examples：
 *      ->      
 *          
 */

#endregion

namespace SpaceLibrary
{
    using System;
    using System.Collections.Generic;

    #region 全局参数

    /// <summary>
    /// 全局参数
    /// </summary>
    public partial class ECharts3
    {
        #region grid

        /// <summary>
        /// 直角坐标系内绘图网格，单个 grid 内最多可以放置上下两个 X 轴，左右两个 Y 轴。可以在网格上绘制折线图，柱状图，散点图（气泡图）。
        /// <para>在 ECharts 2.x 里单个 echarts 实例中最多只能存在一个 grid 组件，在 ECharts 3 中可以存在任意个 grid 组件。</para>
        /// </summary>
        public _grid grid = new _grid();

        public class _grid
        {
            #region show

            private bool _show = false;

            /// <summary>
            /// 是否显示直角坐标系网格。
            /// <para>[ default: false ]</para>
            /// </summary>
            public bool show
            {
                get { return _show; }
                set { _show = value; }
            }

            #endregion

            #region  left

            private dynamic _left = Params.align.auto;

            /// <summary>
            /// grid 组件离容器左侧的距离。
            /// <para>[ default: 'auto' ]</para>
            /// <para>left 的值可以是像 20 这样的具体像素值，可以是像 '20%' 这样相对于容器高宽的百分比，也可以是 'left', 'center', 'right'。</para>
            /// <para>如果 left 的值为'left', 'center', 'right'，组件会根据相应的位置自动对齐。</para>
            /// </summary>
            public dynamic left
            {
                get { return _left; }
                set
                {
                    Type type = value.GetType();
                    if (type.IsEnum)
                    {
                        switch ((Enum.grid.left)value)
                        {
                            case Enum.grid.left.auto:
                                _left = Params.align.auto;
                                break;
                            case Enum.grid.left.left:
                                _left = Params.align.left;
                                break;
                            case Enum.grid.left.center:
                                _left = Params.align.center;
                                break;
                            case Enum.grid.left.right:
                                _left = Params.align.right;
                                break;
                            default:
                                _left = Params.align.auto;
                                break;
                        }
                    }
                    else
                        _left = value;

                }
            }

            #endregion

            #region top

            private dynamic _top = 60;

            /// <summary>
            /// grid 组件离容器上侧的距离。
            /// <para>[ default: 60 ]</para>
            /// <para>top 的值可以是像 20 这样的具体像素值，可以是像 '20%' 这样相对于容器高宽的百分比，也可以是 'top', 'middle', 'bottom'。</para>
            /// <para>如果 top 的值为'top', 'middle', 'bottom'，组件会根据相应的位置自动对齐。</para>
            /// </summary>
            public dynamic top
            {
                get { return _top; }
                set
                {
                    Type type = value.GetType();
                    if (type.IsEnum)
                    {
                        switch ((Enum.grid.top)value)
                        {
                            case Enum.grid.top.auto:
                                _top = Params.align.auto;
                                break;
                            case Enum.grid.top.top:
                                _top = Params.align.top;
                                break;
                            case Enum.grid.top.middle:
                                _top = Params.align.middle;
                                break;
                            case Enum.grid.top.bottom:
                                _top = Params.align.bottom;
                                break;
                            default:
                                _top = Params.align.auto;
                                break;
                        }
                    }
                    else
                        _top = value;

                }
            }

            #endregion

            #region right

            private dynamic _right = "10%";

            /// <summary>
            /// grid 组件离容器右侧的距离。
            /// <para>[ default: '10%' ]</para>
            /// <para>right 的值可以是像 20 这样的具体像素值，可以是像 '20%' 这样相对于容器高宽的百分比。</para>
            /// </summary>
            public dynamic right
            {
                get { return _right; }
                set { _right = value; }
            }

            #endregion

            #region bottom

            private dynamic _bottom = 60;

            /// <summary>
            /// grid 组件离容器下侧的距离。
            /// <para>[ default: 60 ]</para>
            /// <para>bottom 的值可以是像 20 这样的具体像素值，可以是像 '20%' 这样相对于容器高宽的百分比。</para>
            /// </summary>
            public dynamic bottom
            {
                get { return _bottom; }
                set { _bottom = value; }
            }

            #endregion

            #region containLabel

            private bool _containLabel = false;

            /// <summary>
            /// grid 区域是否包含坐标轴的刻度标签，在无法确定坐标轴标签的宽度，容器有比较小无法预留较多空间的时候，可以设为 true 防止标签溢出容器。
            /// <para>[ default: false ]</para>
            /// </summary>
            public bool containLabel
            {
                get { return _containLabel; }
                set { _containLabel = value; }
            }

            #endregion

        }

        #endregion
    }

    #endregion


}
